home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / dskut / copyd11.zip / WSSCOPYD.DOC < prev    next >
Text File  |  1992-12-06  |  10KB  |  225 lines

  1. WSScopyd version 1.1
  2. Copyright December 6, 1992 by Robert W. Babcock and WSS Division of DDC
  3. Unlimited non-commercial use authorized.
  4.  
  5.  
  6. I. Abstract
  7.  
  8. WSScopyd.exe version 1.1
  9. Makes single/multiple copies of floppy disks with single insertion of master.
  10. Optionally formats target disks.  Can save a floppy image to disk and play
  11. it back later.
  12.  
  13.  
  14. II. Introduction
  15.  
  16. On consecutive days I received Borland C++ 3.1, IBM OS/2 2.0 and Microsoft C
  17. 7.0.  Each of these includes a huge pile of disks, and I wanted to make backup
  18. copies.  No problem I thought, I'll just run COPYQM in a Desqview window and
  19. make the copies while working on other things.  Well, it turns out that COPYQM
  20. doesn't work very well under Desqview.  Ordinarily, COPYQM senses when you
  21. have swapped disks, but under DV it sees swaps that didn't happen and
  22. otherwise misbehaves.  I tried about 10 other DISKCOPY replacements, and most
  23. of them were worse.  In particular, even under DOS, most could not handle my
  24. secondary floppy controller.  So, I decided to write my own Desqview-friendly
  25. disk copying utility, WSScopyd.  I still use COPYQM outside of Desqview; it
  26. works well and the registration fee is low.
  27.  
  28.  
  29. III. Requirements
  30.  
  31. 5.25" or 3.5" floppy drive
  32. Master disk with no bad sectors marked in FAT
  33. DOS 3 or higher
  34. Hard or RAM disk space sufficient to hold image of disk being copied
  35.  
  36.  
  37. IV. Configuration
  38.  
  39. WSScopyd reads a configuration file which tells it (1) what drive letters are
  40. valid (2) unit number for low-level access and (3) drive characteristics. The
  41. configuration file is named WSSCOPYD.CFG.  This file is searched for first in
  42. the directory WSScopyd was loaded from, then in the current directory, and
  43. finally on the path.  The configuration file is straight ascii text.  Initial
  44. lines are comments; the important stuff follows a line which begins with at
  45. least 10 dashes.  Each drive-defining line has 3 fields, separated by
  46. whitespace (spaces or tabs).  A sample file might look like
  47.  
  48.       This is a WSScopyd configuration file
  49.       ----------------------------------------------------
  50.       A:    0     1.2MB
  51.       B:    1     1.44MB
  52.  
  53. The first field is the drive letter.  Colon is optional.
  54.  
  55. The second field is the (decimal) unit number used for interrupt 13h access to
  56. the drive.  For A: and B:, these numbers should be 0 and 1 respectively.  For
  57. any other floppy drives, the access numbers depend on the details of the
  58. device driver used to access the floppy.  For example, with a MicroSolutions
  59. Compaticard secondary floppy controller, the first floppy after A: is unit 4.
  60. In general, it may be necessary to determine the unit number experimentally:
  61. try a number and see which floppy spins, if any, when WSScopyd tries to read a
  62. disk.  Hard disk unit numbers start at 128, and WSScopyd won't let you use
  63. such numbers, so experimentation should be safe.
  64.  
  65. The third field is the drive capacity.  Recognized values are
  66.  
  67.    360         - 5.25" DSDD drive (single sided should also work)
  68.    12 or 1.2   - 5.25" HD drive
  69.    72          - 3.5" DD drive
  70.    144 or 1.44 - 3.5" HD drive
  71.  
  72. Additional characters are ignored, so most natural ways of listing the
  73. capacity (1200K, 1.2MB,...) are recognized.
  74.  
  75.  
  76. V. Usage
  77.  
  78. WSScopyd uses a single disk drive.  The floppy being copied and preformatted
  79. target disks must have no bad sectors marked in the FAT.  WSScopyd reads a
  80. floppy, saves the disk image in a temporary file, optionally formats a blank
  81. disk, writes the saved image on the floppy, and optionally re-reads the disk
  82. and compares with the saved disk image.  A simple bar graph display indicates
  83. progress of each step.  To start copying, invoke WSScopyd by
  84.  
  85.     wsscopyd [options] d: [options]
  86.  
  87. Where d: is the drive to use for copying (A:, B:,...).  This must be a
  88. removable disk; the program will complain and stop if it isn't.  Options are
  89. of the form -letter or /letter, possibly followed by a value.  A space between
  90. the option letter and the value is optional.  Anything not of this form is
  91. assumed to be the disk mode letter (the colon is not really necessary).  Case
  92. of options is ignored.  Recognized options are
  93.  
  94.    -B - beep when disk change is needed
  95.    -Cn - number of copies (may be zero if -S option specified)
  96.    -F - format target disk
  97.    -R fn - reuse saved file fn
  98.    -S fn - save disk file with name fn
  99.    -T - display time used
  100.    -V - verify by reading floppy and comparing to original data
  101.    -X1 - disk is single-sided, 10 sectors per track, 80 tracks
  102.    -X2 - disk is double-sided, 10 sectors per track, 80 tracks
  103.    -X3 - disk is RX-50 (like X1 but tracks after 1st two are 2:1 interleave)
  104.  
  105. -X format source disks do not need to have a valid boot sector.  Volume label
  106. will not be displayed during copying when -X is specified because DOS may not
  107. be able to read such disks without special drivers.
  108.  
  109. If neither the -R nor the -S option is specified, the temporary file is placed
  110. in the directory pointed to by the TEMP or TMP environment variable.  One of
  111. these must be defined.
  112.  
  113. Disk verification is done on a separate pass.  This is slightly slower than
  114. verifying immediately after writing, but I think (with no real evidence) that
  115. giving a marginal sector more time to forget what was written is a good idea.
  116. Note that this is a real verify; data read from the floppy is compared with
  117. what was previously written.  DOS verify reads a disk and complains if there
  118. are CRC errors, but does not inspect the data.
  119.  
  120.  
  121. VI. Desqview compatibility
  122.  
  123. If you use the default Desqview setup, you will probably get unspeakably poor
  124. performance for all floppy operations.  As I understand it, this is because
  125. floppy I/O must go through a buffer in the first megabyte of memory, and by
  126. default this buffer is only 2K long.  Whenever this buffer fills or empties,
  127. DV must copy data to or from your program's buffer.  When this happens, you
  128. can't get the I/O started before the next sector has gone by, so you have to
  129. wait for a full revolution before continuing.  It's similar to the performance
  130. degradation you get if a hard disk has too small an interleave.  The solution
  131. is to use the DV SETUP program to increase "DOS buffers for EMS".  If you
  132. double this buffer size one or more times, you will notice large decreases in
  133. the time needed for floppy operations.  WSScopyd has a timer option which will
  134. tell you how long it takes to read, format, write or verify a disk.  These
  135. times decrease as the buffer size is increased to 32K, and maybe beyond.  (But
  136. memory available in a window decreases.)  Note that any change in buffer size
  137. only takes effect if you exit DV and restart it.  Comments in the source code
  138. include a table of time to read a 360K disk as a function of the EMS buffer
  139. size.
  140.  
  141. WSScopyd is written to work under Desqview, yet it doesn't even need to detect
  142. whether DV is active.  Everything is done with BIOS calls, and there are no
  143. polling loops, and that's all that DV needs.  One little DV compatibility
  144. feature is that WSScopyd does not use the first or last two screen columns so
  145. all of its output can be seen in a full-width window with borders.  One big
  146. problem is that performance in other windows degrades significantly when
  147. WSScopyd is working.  I don't know if there is any way around this.
  148.  
  149.  
  150. VII. OS/2 compatibility
  151.  
  152. WSScopyd sort of works in a DOS window under OS/2, but it runs slowly and
  153. sometimes gets spurious read errors.  There may be some tuning parameters
  154. which need to be set, similar to the Desqview EMS buffers.  A likely suspect
  155. is keyboard idle sensitivity.  The 10-sector options probably won't work
  156. under OS/2.
  157.  
  158. To get my secondary floppy controller to work under OS/2, I had to move it to
  159. IRQ 5.  This broke the version of COPYQM I had been using, even under DOS, but
  160. WSScopyd still works, as does the latest COPYQM.
  161.  
  162.  
  163. VIII. Acknowledgements, in alphabetical order
  164.  
  165. Ralf Brown, compiler of INTERxxx interrupt list.
  166.  
  167. Edward V. Dong, author of ZFMAT.
  168.  
  169. Roedy Green who pointed out that I had to check the FAT for bad sectors.
  170.  
  171. Sydex (COPYQM) - My progress bar is patterned after thei